package org.jallinone.items.server;


import org.openswing.swing.server.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import org.openswing.swing.message.receive.java.*;
import java.sql.*;

import org.openswing.swing.internationalization.java.Resources;
import org.openswing.swing.internationalization.server.ServerResourcesFactory;
import org.openswing.swing.logger.server.*;
import org.jallinone.system.server.*;
import org.jallinone.items.java.*;
import org.openswing.swing.server.*;
import org.jallinone.commons.java.ApplicationConsts;
import org.jallinone.commons.server.*;
import java.math.*;
import org.jallinone.system.translations.server.*;
import org.jallinone.system.java.*;
import org.jallinone.events.server.*;
import org.jallinone.events.server.*;
import org.jallinone.variants.server.*;
import org.jallinone.variants.java.*;
import org.jallinone.variants.java.*;


import org.jallinone.commons.server.JAIOBeanFactory;

/**
 * <p>Title: JAllInOne ERP/CRM application</p>
 * <p>Description: Action class used to update item's variants and types.</p>
 * <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
 *
 * <p> This file is part of JAllInOne ERP/CRM application.
 * This application is free software; you can redistribute it and/or
 * modify it under the terms of the (LGPL) Lesser General Public
 * License as published by the Free Software Foundation;
 *
 *                GNU LESSER GENERAL PUBLIC LICENSE
 *                 Version 2.1, February 1999
 *
 * This application is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 *       The author may be contacted at:
 *           maurocarniel@tin.it</p>
 *
 * @author Mauro Carniel
 * @version 1.0
 */
public class UpdateItemVariantsAction implements Action {

  public UpdateItemVariantsAction() {  }


  /**
   * @return request name
   */
  public final String getRequestName() {
    return "updateItemVariants";
  }


  public final Response executeCommand(Object inputPar,UserSessionParameters userSessionPars,HttpServletRequest request, HttpServletResponse response,HttpSession userSession,ServletContext context) {
	  ArrayList oldVOs = ((ArrayList[])inputPar)[0];
	  ArrayList newVOs = ((ArrayList[])inputPar)[1];
	  try {
		  ItemVariantVO vo = (ItemVariantVO)newVOs.get(0);
		  ItemPK pk = new ItemPK(vo.getCompanyCodeSys01(),vo.getItemCodeItm01());
		  
		  LoadItem itembean = (LoadItem)JAIOBeanFactory.getInstance().getBean(LoadItem.class);
		  BigDecimal progressiveHie02ITM01 = itembean.getProgressiveHie02ITM01(pk, userSessionPars.getUsername()); 
		  
		  ServerResourcesFactory factory = (ServerResourcesFactory)context.getAttribute(Controller.RESOURCES_FACTORY);
		  Resources resources = factory.getResources(userSessionPars.getLanguageId());
		  String t1 = resources.getResource("barcode already assigned to another item");
		  String imagePath = (String)((JAIOUserSessionParameters)userSessionPars).getAppParams().get(ApplicationConsts.IMAGE_PATH);
		  
		  UpdateItemVariants bean = (UpdateItemVariants)JAIOBeanFactory.getInstance().getBean(UpdateItemVariants.class);
		  Response answer = bean.updateItemVariants(t1,((ArrayList[])inputPar)[0],((ArrayList[])inputPar)[1],((JAIOUserSessionParameters)userSessionPars).getServerLanguageId(),userSessionPars.getUsername(),imagePath,progressiveHie02ITM01);

		  return answer;
	  }
	  catch (Throwable ex) {
		  Logger.error(userSessionPars.getUsername(),this.getClass().getName(),"executeCommand","Error while processing request",ex);
		  return new ErrorResponse(ex.getMessage());
	  }
  }
}

